package dancetiktokenumsmysql

const (
	// 宠物类型
	DanceEggCat         = 1 //猫
	DanceEggElf         = 2 // 花仙子
	DanceEggSuperDog    = 3 // 超级狗
	DanceEggDog         = 4 // 狗
	DanceEggRabbit      = 5 // 兔子
	DanceEggSuperRabbit = 6 // 超级兔
	DanceEggSpiritSnake = 7 // 灵蛇
	DanceEggElfSmall    = 8 // 小精灵

	// 宠物品质
	DancePetQualityRegular = 1 //普通
	DancePetQualityElite   = 2 //精英

	// 宠物皮肤品质
	DancePetSkinQualityB  = 0 //B级
	DancePetSkinQualityA  = 1 //A级
	DancePetSkinQualityS  = 2 //S级
	DancePetSkinQualitySP = 3 //SP级
	DancePetSkinQualitySS = 4 //SS级
)

type DanceEggEnums struct {
}

var DanceEggEnumsObject DanceEggEnums

func (d DanceEggEnums) ConditionsType() []int {
	return []int{
		DanceEggCat,
		DanceEggElf,
		DanceEggSuperDog,
		DanceEggDog,
		DanceEggRabbit,
		DanceEggSuperRabbit,
		DanceEggSpiritSnake,
		DanceEggElfSmall,
	}
}

func (d DanceEggEnums) ConditionsTypeMap() map[int]string {
	m := make(map[int]string)
	for _, s := range d.ConditionsType() {
		m[s] = d.ConditionsTypeString(s)
	}
	return m
}

func (d DanceEggEnums) ConditionsTypeString(tag int) string {
	switch tag {
	case DanceEggCat:
		return "猫"
	case DanceEggElf:
		return "花仙子"
	case DanceEggSuperDog:
		return "超级狗"
	case DanceEggDog:
		return "狗"
	case DanceEggRabbit:
		return "兔子"
	case DanceEggSuperRabbit:
		return "超级兔"
	case DanceEggSpiritSnake:
		return "灵蛇"
	case DanceEggElfSmall:
		return "小精灵"
	default:
		return "猫"
	}
}

func (d DanceEggEnums) ConditionsPetQualityType() []int {
	return []int{
		DancePetQualityRegular,
		DancePetQualityElite,
	}
}

func (d DanceEggEnums) ConditionsPetQualityTypeMap() map[int]string {
	m := make(map[int]string)
	for _, s := range d.ConditionsPetQualityType() {
		m[s] = d.ConditionsPetQualityTypeString(s)
	}
	return m
}

func (d DanceEggEnums) ConditionsPetQualityTypeString(tag int) string {
	switch tag {
	case DancePetQualityRegular:
		return "普通"
	case DancePetQualityElite:
		return "精英"
	default:
		return "其他"
	}
}

func (d DanceEggEnums) ConditionsSkinQualityType() []int {
	return []int{
		DancePetSkinQualityB,
		DancePetSkinQualityA,
		DancePetSkinQualityS,
		DancePetSkinQualitySP,
	}
}

func (d DanceEggEnums) ConditionsSkinQualityTypeMap() map[int]string {
	m := make(map[int]string)
	for _, s := range d.ConditionsSkinQualityType() {
		m[s] = d.ConditionsSkinQualityTypeString(s)
	}
	return m
}

func (d DanceEggEnums) ConditionsSkinQualityTypeString(tag int) string {
	switch tag {
	case DancePetSkinQualityB:
		return "B级"
	case DancePetSkinQualityA:
		return "A级"
	case DancePetSkinQualityS:
		return "S级"
	case DancePetSkinQualitySP:
		return "SP级"
	case DancePetSkinQualitySS:
		return "SS级"
	default:
		return "其他"
	}
}
